package cn.tedu.hospitalgroupproject.server.content.service;


import cn.tedu.hospitalgroupproject.server.common.pojo.vo.PageData;
import cn.tedu.hospitalgroupproject.server.content.pojo.param.AppointmentAddNewParam;
import cn.tedu.hospitalgroupproject.server.content.pojo.vo.AppointmentListVO;
import cn.tedu.hospitalgroupproject.server.content.pojo.vo.ClinicListVO;

/**
 * 处理预约挂号数据的业务接口
 *
 * @author java@tedu.cn
 * @version 1.0
 */
public interface IAppointmentService {


    /**
     * 新增挂号单
     *
     * @param appointmentAddNewParam 新增的挂号单数据
     */
    void addNew(AppointmentAddNewParam appointmentAddNewParam);
    /**
     * 根据问诊时间查询预约单列表，将使用默认的“每页记录数”
     *
     * @param pageNum  页码
     * @return 预约单列表的分页数据
     */
    PageData<AppointmentListVO> listByVisitTime(Integer pageNum,String visitTime);

    /**
     * 根据问诊时间查询预约单列表
     *
     * @param pageNum  页码
     * @param pageSize 每条记录数
     * @return 预约单列表的分页数据
     */
    PageData<AppointmentListVO> listByVisitTime(Integer pageNum, Integer pageSize,String visitTime);

    /**
     * 根据预约时间查询预约单列表，将使用默认的“每页记录数”
     *
     * @param pageNum  页码
     * @return 预约单列表的分页数据
     */
    PageData<AppointmentListVO> listByCreateTime(Integer pageNum,String createTime);

    /**
     * 根据预约时间查询预约单列表
     *
     * @param pageNum  页码
     * @param pageSize 每条记录数
     * @return 预约单列表的分页数据
     */
    PageData<AppointmentListVO> listByCreateTime(Integer pageNum, Integer pageSize,String CreateTime);
    /**
     * 根据医生姓名查询预约单列表，将使用默认的“每页记录数”
     *
     * @param pageNum  页码
     * @return 预约单列表的分页数据
     */
    PageData<AppointmentListVO> listByDoctorName(Integer pageNum,String doctorName);

    /**
     * 根据医生姓名查询预约单列表
     *
     * @param pageNum  页码
     * @param pageSize 每条记录数
     * @return 预约单列表的分页数据
     */
    PageData<AppointmentListVO> listByDoctorName(Integer pageNum, Integer pageSize,String doctorName);

    /**
     * 查询预约单列表，将使用默认的“每页记录数”
     *
     * @param pageNum  页码
     * @return 预约单列表的分页数据
     */
    PageData<AppointmentListVO> list(Integer pageNum);

    /**
     * 查询预约单列表
     *
     * @param pageNum  页码
     * @param pageSize 每条记录数
     * @return 预约单列表的分页数据
     */
    PageData<AppointmentListVO> list(Integer pageNum, Integer pageSize);

}
